1. Field of the Invention
This invention relates to a system and method for concurrency simulation and particularly to such simulation of program routines written in a highly concurrent programming language.
2. Description of the Prior Art
In the design of parallel system architectures many degrees of freedom are available to the designer. However, it is difficult to search for empirical data about a broad class of parallel system architectures with an emphasis on identifying concurrency of the particular object code and to measure effectiveness of the identified concurrency involved for the exploitation of parallel architecture. An example of a processor design for exploiting concurrency in an ALGOL type machine language is disclosed in the DeSantis et al U.S. Pat. No. 4,466,061 where ALGOL type languages are normally considered to be sequential and nonconcurrent.
There are programming languages in existence today which are considered to be highly concurrent such as purely functional LISP which is based on the lambda calculus of A. Church. However, in its practical implementation, commercial LISP takes on many sequentializing features that cause it to lose a high degree of its concurrency. A particular language, as a readable alternative to pure LISP, is the St. Andrews Static Language or SASL which was proposed by David A. Turner (SASL Language Manual, University of St. Andrews, 1976). This language can be implemented by employing a number of "combinators" and also primitive functions which transform SASL source code into a notation in which bound variables do not occur to produce a variable-free object code (D. A. Turner, "A New Implementation Technique for Applicative Languages", Software-Practice and Experience, Volume 9, pgs. 31-49, 1979).
Such programs may be said to be demand driven in that only those functions are evaluated as are necessary. Such programs may be executed by a network of processors operating either simultaneously or independent of one another. Programs written in such a language are readily implemented in a parallel system providing that some systematic method is obtained for the identification of concurrency which is exploitable on a parallel architecture.
It is, then, the object of the present invention to provide an improved system and method for the simulation of concurrency that can be identified in various programming languages.
It is another object of the present invention to provide such a system and method for the simulation of concurrency in programs written in highly concurrent languages.
It is a further object of the present invention to identify concurrency available in various programs and programming languages for exploitation on parallel system architectures.